package hu.comicsans;

import java.util.ArrayList;

/**
 * Meghatározott fújást biztosító objektum, ami a fújás hatására egy mérgezett területet
 * hoz létre. Amennyiben nincs több felhasználható fújás, jelzi a játéknak, hogy kiürült.
 */
public class HangyaIrtoSpray extends Spray implements Frissitheto {

	/**
	 * a mérgezett területeket tartalmazó lista
	 */
	public ArrayList<MergezettTerulet> mergezettTeruletLista;
	
	/**
	 * létrehoz egy új hangyairtó sprayt
	 * @param p a pálya, amihez a spray tartozik
	 * @param f a hátralevő fújások száma
	 */
	public HangyaIrtoSpray(Palya p, int f) {
		super(p, f);
		
		mergezettTeruletLista  = new ArrayList<MergezettTerulet>();
	}
	
	/**
	 * Ez a függvény csökkenti a hátralévő fújásadagok számát, abban az esetben ha még nem fogyott ki.
	 * 
	 * @return sikerült-e a fújás
	 */
	@Override
	public Boolean fuj(double posX, double posY) {
		if (hatralevoFujasokSzama > 0) {
			hatralevoFujasokSzama--;

			mergezettTeruletLista.add(new MergezettTerulet(this, posX, posY, 50));
			
			return true;
		}

		return false;
	}
	
	/**
	 * Meghívja a paraméterben átadott mérgezett terület objektum eltávolító függvényét.
	 * 
	 * @param mergezettTerulet Az eltávolítani kívánt mérgezett terület.
	 */
	public void mergezettTeruletLevesz(MergezettTerulet mergezettTerulet) {
		mergezettTeruletLista.remove(mergezettTerulet);
	}

	/**
	 * Frissíti az összes mérgezett területet.
	 */
	@Override
	public void frissit(long elteltIdo) {
		for	(int i=0; i< mergezettTeruletLista.size(); i++)
		{
			MergezettTerulet mt = mergezettTeruletLista.get(i);
			mt.frissit(elteltIdo);
		}
	}

}
